package com.example.controller;

import java.io.File;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.service.XsService;
import com.example.utils.config.CommonConfig;

import lombok.extern.slf4j.Slf4j;

/**
 * 销售 阶段性考核评分
 * 回款额 获取 进账申请书流程 里的进账金额  对应销售合同信息里  验收金额， 工程编号-->销售合同管理流程的 工程编号，销售经理负责人
 * @author user
 *
 */
@Slf4j
@RestController
@RequestMapping("/api/xs")
public class XsController {

	@Autowired
    private XsService xsService;
	
	/**
	 * 请求  http://localhost:9000/xs/test?year=2021
	 * 获取销售人员阶段性考核数据（包含合同，项目，投标，日常考核）
	 * 数据格式：
	   [{"deptid":137,
        "deptname":"山东分公司",
        "companystartdate":"2016-10-09",    入职日期
        "lastname":"张洪飞",
        "loginid":"16065",
        "userid":"116",
	        "xsTjEntity":{
	            "htpre":0,                  合同回款额，2021年以前
	            "htcur":0,					合同回款额，今年
	            "ht1":0,					一季度合同额
	            "ht2":0,					二季度合同额
	            "ht3":29400,				三季度合同额
	            "ht4":0,					四季度合同额
	            "htdown":14,				在途项目，500万元以下及未有预算
	            "htmid":5,					在途项目，500-1500
	            "htup":8,					在途项目，1500以上
	            "htnormal":0,				备案项目，常规项目
	            "htimportant":0,			备案项目，重点项目
	            "tbcount":2,				投标数
	            "khf":0						日常考核分（未提交日报数量 目前为负数）
	        }
        },........
        ]
	 * @param year 年份
	 * @return 阶段性考核数据
	 */
	@RequestMapping("/test")
    public Object queryData(String year){
        return xsService.queryXsUserIncludeData(year);
    }

	/**
	 * http://localhost:9000/api/xs/tj?year=2022 测试
	 * @param year
	 * @return
	 */
	@RequestMapping("/tj")
    public Object tj(String year){
        return xsService.tj(year);
    }
	/**
	 * http://localhost:9000/api/xs/export?year=2022&path=suibiantian
	 * year 必传参数 ， path选传  如果path不传 查询反馈数据格式如下
	 * 返回数据格式
	  {
        "id":null,
        "deptname":"山东分公司",                
        "companystartdate":"",
        "lastname":"山东分公司",                      与公司名相同，表示统计数据
        "htpre":0,                                 合同回款额，2021年以前
        "htcur":11428.682803,                      合同回款额，今年
        "hkl":672.4957583251982,                   2021年 回款率
        "hte":169944.3106,                         合同得分 _ 全年合同额（万元）
        "ht1":10162.72,                            一季度合同额（万元）
        "ht2":53249.2109,                          二季度合同额（万元）
        "ht3":106532.3797,                         三季度合同额（万元）
        "ht4":0,                                   四季度合同额（万元）
        "xj":1699.443106,                          合同得分_小计
        "ztSbs":77,                                总共在途项目分_申报数
        "htdown":27,                               总共在途项目分_500以下及未有预算
        "htmid":21,								   总共在途项目分_500-1500
        "htup":29,								   总共在途项目分_1500以上
        "ztXj":156,								   总共在途项目分_小计
        "baSbs":8,                                 总共备案项目分_申报数
        "htnormal":6,                              总共备案项目分_常规项目
        "htimportant":2, 						   总共备案项目分_重点项目
        "baXj":30,								   总共备案项目分_小计
        "tbcount":11,                              投标数
        "tbXj":55,                                 投标数_小计
        "khf":0,                                   考核分
        "zf":1940.443106                           总分
    },{
        "id":null,
        "deptname":"山东分公司",
        "companystartdate":"2017-07-24",
        "lastname":"徐会旌",                          个人，其他数据表示内容与部门相同
        "htpre":0,
        "htcur":3752.4889,
        "hkl":770.3695298140726,
        "hte":48710.2456,
        "ht1":0,
        "ht2":48116.2456,
        "ht3":594,
        "ht4":0,
        "xj":487.102456,
        "ztSbs":5,
        "htdown":1,
        "htmid":0,
        "htup":4,
        "ztXj":13,
        "baSbs":0,
        "htnormal":0,
        "htimportant":0,
        "baXj":0,
        "tbcount":3,
        "tbXj":15,
        "khf":0,
        "zf":515.1024560000001
    }, ......
    如果path传值  （值随便，改成从配置文件获取路径， common.profile  服务器存放excel路径）
	 * @param year
	 * @param path 没有该参数只查询, 有该参数将导出到excel文件中最终反控excel名称
	 * @return
	 */
	@RequestMapping("/export")
	
    public Object export(String year,String path){
		log.info("销售得分导出，参数year:{},path:{}",year,path);
		if(path==null) {
			return xsService.export(year);
		}else {
			return xsService.export(year, CommonConfig.getProfile()+File.separator);
		}
    }
	/**
	 * 无效
	 * @param year
	 * @param path
	 * @return
	 */
	@RequestMapping("/wuxiao")
    public Object wuxiao(String id){
//		log.info("info:{}",id);
		return xsService.wuxiao(id);
    }
	
	/**
	 * 投标数据分析
	 * @param year
	 * @param path
	 * @return
	 * [{"sqr":null,"sqsj":null,"deptname":"华中分公司","tbnumber":1,"zbnumber":1,"successrate":100},
	 * {"sqr":null,"sqsj":null,"deptname":"国际业务一部","tbnumber":0,"zbnumber":0,"successrate":0},
	 * {"sqr":null,"sqsj":null,"deptname":"山东分公司","tbnumber":17,"zbnumber":0,"successrate":0},
	 * {"sqr":null,"sqsj":null,"deptname":"华东分公司","tbnumber":6,"zbnumber":0,"successrate":0},
	 * {"sqr":null,"sqsj":null,"deptname":"华南分公司","tbnumber":0,"zbnumber":0,"successrate":0},
	 * {"sqr":null,"sqsj":null,"deptname":"西北分公司","tbnumber":1,"zbnumber":0,"successrate":0},
	 * {"sqr":null,"sqsj":null,"deptname":"华北分公司","tbnumber":3,"zbnumber":0,"successrate":0}]
	 */
	@RequestMapping("/tb")
    public Object tb(String year){
//		log.info("info:{}",id);
		return xsService.tb(year);
    }
}

